Fixed extended layout implementors to not call ->get_desired_size() directly
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:40:50 +0000 (20:40 -0400)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:59:28 +0000 (20:59 -0400)
Getting the desired size of a GtkWidget must always be done with
gtk_widget_get_desired_size() and never with
gtk_extended_layout_get_desired_size() directly as the former passes
through size group logic and updates the widget->requisition cache.

gtk/gtkalignment.c
gtk/gtkbin.c
gtk/gtklabel.c
gtk/gtkplug.c
gtk/gtksocket.c

index 3accb4ddb75812c4967084796c1777caf9d83823..8837fca8099f88128ee48752ec54cd4398477cf4 100644 (file)
@@ -461,7 +461,7 @@ gtk_alignment_size_allocate (GtkWidget     *widget,
     {
       GtkExtendedLayout *layout = GTK_EXTENDED_LAYOUT (bin->child);
 
-      gtk_extended_layout_get_desired_size (layout, NULL, &child_requisition);
+      gtk_widget_get_desired_size (GTK_WIDGET (layout), NULL, &child_requisition);
 
       border_width = GTK_CONTAINER (alignment)->border_width;
 
index 8da28ef1886def44741a4fec36d1250dffb8faec..e141529e5f575c587b330b34c82391653931d4c9 100644 (file)
@@ -156,12 +156,11 @@ gtk_bin_extended_layout_get_desired_size (GtkExtendedLayout *layout,
                                           GtkRequisition    *minimum_size,
                                           GtkRequisition    *natural_size)
 {
-  GtkBin *bin = GTK_BIN (layout);
+  GtkWidget *child;
 
-  g_return_if_fail (GTK_IS_EXTENDED_LAYOUT (bin->child));
+  child = gtk_bin_get_child (GTK_BIN (layout));
 
-  gtk_extended_layout_get_desired_size (GTK_EXTENDED_LAYOUT (bin->child),
-                                        minimum_size, natural_size);
+  gtk_widget_get_desired_size (child, minimum_size, natural_size);
 }
 
 static void
@@ -170,11 +169,11 @@ gtk_bin_extended_layout_get_width_for_height (GtkExtendedLayout *layout,
                                               gint              *minimum_width,
                                               gint              *natural_width)
 {
-  GtkBin *bin = GTK_BIN (layout);
+  GtkWidget *child;
 
-  g_return_if_fail (GTK_IS_EXTENDED_LAYOUT (bin->child));
+  child = gtk_bin_get_child (GTK_BIN (layout));
 
-  gtk_extended_layout_get_width_for_height (GTK_EXTENDED_LAYOUT (bin->child),
+  gtk_extended_layout_get_width_for_height (GTK_EXTENDED_LAYOUT (child),
                                             height, minimum_width, natural_width);
 }
 
@@ -184,11 +183,11 @@ gtk_bin_extended_layout_get_height_for_width (GtkExtendedLayout *layout,
                                               gint              *minimum_height,
                                               gint              *natural_height)
 {
-  GtkBin *bin = GTK_BIN (layout);
+  GtkWidget *child;
 
-  g_return_if_fail (GTK_IS_EXTENDED_LAYOUT (bin->child));
+  child = gtk_bin_get_child (GTK_BIN (layout));
 
-  gtk_extended_layout_get_height_for_width (GTK_EXTENDED_LAYOUT (bin->child),
+  gtk_extended_layout_get_height_for_width (GTK_EXTENDED_LAYOUT (child),
                                             width, minimum_height, natural_height);
 }
 
index 2759bb22ba3b6034ecff13be23777b8cf6dd4321..f8370eba90105cdd1ad02fcb360960d69363864f 100644 (file)
@@ -3333,9 +3333,9 @@ gtk_label_get_width_for_height (GtkExtendedLayout *layout,
     {
       GtkRequisition minimum_size, natural_size;
 
-      gtk_extended_layout_get_desired_size (layout,
-                                            minimum_width ? &minimum_size : NULL,
-                                            natural_width ? &natural_size : NULL);
+      gtk_widget_get_desired_size (layout,
+                                  minimum_width ? &minimum_size : NULL,
+                                  natural_width ? &natural_size : NULL);
 
       if (minimum_width)
         *minimum_width = minimum_size.width;
@@ -3359,9 +3359,9 @@ gtk_label_get_height_for_width (GtkExtendedLayout *layout,
     {
       GtkRequisition minimum_size, natural_size;
 
-      gtk_extended_layout_get_desired_size (layout,
-                                            minimum_height ? &minimum_size : NULL,
-                                            natural_height ? &natural_size : NULL);
+      gtk_widget_get_desired_size (layout,
+                                  minimum_height ? &minimum_size : NULL,
+                                  natural_height ? &natural_size : NULL);
 
       if (minimum_height)
         *minimum_height = minimum_size.height;
index be0fe398a7f32a25561dc15ff006c4feefc089d1..9351e9638e0ccab5b9b0f6f001dd1f2422d25fd9 100644 (file)
@@ -781,9 +781,9 @@ gtk_plug_size_allocate (GtkWidget     *widget,
       
     }
 
-   gtk_extended_layout_get_desired_size (GTK_EXTENDED_LAYOUT (bin->child),
-                                         NULL, &natural_size);
-   _gtk_plug_windowing_publish_natural_size (GTK_PLUG (widget), &natural_size);
+  gtk_widget_get_desired_size (bin->child,
+                              NULL, &natural_size);
+  _gtk_plug_windowing_publish_natural_size (GTK_PLUG (widget), &natural_size);
 }
 
 static gboolean
index b19b4a5049bb5429ca161ee3620dec7736568f6c..3ca605fb42043c983968ab9c68fb42d16656ad59 100644 (file)
@@ -1022,9 +1022,9 @@ gtk_socket_extended_layout_get_desired_size (GtkExtendedLayout *layout,
 
   if (socket->plug_widget)
     {
-      gtk_extended_layout_get_desired_size (GTK_EXTENDED_LAYOUT (socket->plug_widget),
-                                                                 minimal_size,
-                                                                 desired_size); 
+      gtk_widget_get_desired_size (socket->plug_widget,
+                                  minimal_size,
+                                  desired_size); 
     }
   else
     {